package com.cinc.mdm.modules.material.vo;

import com.cinc.mdm.modules.material.entity.MdmMaterialFactoryDetail;
import com.cinc.mdm.modules.material.entity.MdmMaterialFinanceDetail;
import com.cinc.mdm.modules.material.entity.MdmMaterialUnitDetail;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * @Description: mdm_material
 * @Author: jeecg-boot
 * @Date:   2021-10-13
 * @Version: V1.0
 */
@Data
@ApiModel(value="mdm_materialPage对象", description="mdm_material")
public class MdmMaterialPage {

	/**主键*/
	@ApiModelProperty(value = "主键")
    private String id;
	/**物料编号*/
	@Excel(name = "物料编号", width = 15)
	@ApiModelProperty(value = "物料编号")
    private String materialCode;
	/**物料名称*/
	@Excel(name = "物料名称", width = 15)
	@ApiModelProperty(value = "物料名称")
    private String materialName;
	/**物料属性组*/
	@Excel(name = "物料属性组", width = 15, dictTable = "mdm_material_prop_group", dicText = "name", dicCode = "id")
	@Dict(dictTable = "mdm_material_prop_group", dicText = "name", dicCode = "id")
	@ApiModelProperty(value = "物料属性组")
	private String propGroupId;
	/**物料属性*/
	@Excel(name = "物料属性", width = 15, dictTable = "mdm_material_prop_value", dicText = "display_name", dicCode = "id")
	@Dict(dictTable = "mdm_material_prop_value", dicText = "display_name", dicCode = "id")
	@ApiModelProperty(value = "物料属性")
	private String materialProp;
	/**物料类型ID*/
	@Excel(name = "物料类型ID", width = 15, dictTable = "mdm_material_type", dicText = "material_type_name", dicCode = "id")
    @Dict(dictTable = "mdm_material_type", dicText = "material_type_name", dicCode = "id")
	@ApiModelProperty(value = "物料类型ID")
    private String materialTypeId;
	/**物料类型编码*/
	@Excel(name = "物料类型编码", width = 15)
	@ApiModelProperty(value = "物料类型编码")
	private String materialTypeCode;
	/**物料来源*/
	@Excel(name = "物料来源", width = 15)
	@ApiModelProperty(value = "物料来源")
    private String materialSourceCode;
	/**产品组*/
	@Excel(name = "产品组", width = 15)
	@ApiModelProperty(value = "产品组")
    private String productionGroupId;
	/**物料组*/
	@Excel(name = "物料组", width = 15)
	@ApiModelProperty(value = "物料组")
    private String materialGroupId;
	/**单位*/
	@Excel(name = "单位", width = 15, dictTable = "mdm_unit", dicText = "unit_name", dicCode = "id")
	@Dict(dictTable = "mdm_unit", dicText = "unit_name", dicCode = "id")
	@ApiModelProperty(value = "单位")
    private String materialUnitCode;
	/**辅助单位*/
	@Excel(name = "辅助单位", width = 15, dicCode = "unit")
    @Dict(dicCode = "unit")
	@ApiModelProperty(value = "辅助单位")
    private String auxiliaryUnitCode;
	/**旧物料号*/
	@Excel(name = "旧物料号", width = 15)
	@ApiModelProperty(value = "旧物料号")
    private String oldMaterialCode;
	/**旧物料名称*/
	@Excel(name = "旧物料名称", width = 15)
	@ApiModelProperty(value = "旧物料名称")
    private String oldMaterialName;
	/**打印名称*/
	@Excel(name = "打印名称", width = 15)
	@ApiModelProperty(value = "打印名称")
    private String materialPrintName;
	/**分类ID*/
	@Excel(name = "分类ID", width = 15)
	@ApiModelProperty(value = "分类ID")
    private String materialClassId;
	/**销售标志*/
	@Excel(name = "销售标志", width = 15)
	@ApiModelProperty(value = "销售标志")
    private String materialSaleFlag;
	/**出入库策略*/
	@Excel(name = "出入库策略", width = 15)
	@ApiModelProperty(value = "出入库策略")
    private String inoutStrategyCode;
	/**生产仓库*/
	@Excel(name = "生产仓库", width = 15)
	@ApiModelProperty(value = "生产仓库")
    private String productionStockId;
	/**采购仓库*/
	@Excel(name = "采购仓库", width = 15)
	@ApiModelProperty(value = "采购仓库")
    private String buyStockId;
	/**规格*/
	@Excel(name = "规格", width = 15)
	@ApiModelProperty(value = "规格")
    private String materialSpec;
	/**材质*/
	@Excel(name = "材质", width = 15)
	@ApiModelProperty(value = "材质")
    private String materialMaterial;
	/**图号*/
	@Excel(name = "图号", width = 15)
	@ApiModelProperty(value = "图号")
    private String materialGraphNo;
	/**产地*/
	@Excel(name = "产地", width = 15)
	@ApiModelProperty(value = "产地")
    private String materialOriginPlace;
	/**品牌*/
	@Excel(name = "品牌", width = 15)
	@ApiModelProperty(value = "品牌")
    private String materialBrand;
	/**宽度*/
	@Excel(name = "宽度", width = 15)
	@ApiModelProperty(value = "宽度")
    private java.math.BigDecimal materialWidth;
	/**厚度*/
	@Excel(name = "厚度", width = 15)
	@ApiModelProperty(value = "厚度")
    private java.math.BigDecimal materialThickness;
	/**长度*/
	@Excel(name = "长度", width = 15)
	@ApiModelProperty(value = "长度")
    private java.math.BigDecimal materialLength;
	/**颜色*/
	@Excel(name = "颜色", width = 15)
	@ApiModelProperty(value = "颜色")
    private String materialColor;
	/**毛重*/
	@Excel(name = "毛重", width = 15)
	@ApiModelProperty(value = "毛重")
    private java.math.BigDecimal materialGrossWeight;
	/**净重*/
	@Excel(name = "净重", width = 15)
	@ApiModelProperty(value = "净重")
    private java.math.BigDecimal materialNetWeight;
	/**重量单位*/
	@Excel(name = "重量单位", width = 15)
	@ApiModelProperty(value = "重量单位")
    private String weighUnitCode;
	/**面积*/
	@Excel(name = "面积", width = 15)
	@ApiModelProperty(value = "面积")
    private java.math.BigDecimal materialArea;
	/**体积*/
	@Excel(name = "体积", width = 15)
	@ApiModelProperty(value = "体积")
    private java.math.BigDecimal materialVolume;
	/**体积单位*/
	@Excel(name = "体积单位", width = 15)
	@ApiModelProperty(value = "体积单位")
    private String volumeUnitCode;
	/**物料状态*/
	@Excel(name = "物料状态", width = 15)
	@ApiModelProperty(value = "物料状态")
    private String materialStatusCode;
	/**图片*/
	@Excel(name = "图片", width = 15)
	@ApiModelProperty(value = "图片")
	private java.lang.String materialPic;
	/**上下架标志*/
	@Excel(name = "上下架标志", width = 15)
	@ApiModelProperty(value = "上下架标志")
	private java.lang.String shelvesFlag;
	/**生效日期*/
	@Excel(name = "生效日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	@ApiModelProperty(value = "生效日期")
    private Date materialEffectiveDate;
	/**失效日期*/
	@Excel(name = "失效日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	@ApiModelProperty(value = "失效日期")
    private Date materialExpiryDate;
	/**备注*/
	@Excel(name = "备注", width = 15)
	@ApiModelProperty(value = "备注")
    private String remark;
	/**采购组织*/
	@Excel(name = "采购组织", width = 15)
	@ApiModelProperty(value = "采购组织")
    private String purDeptId;
	/**采购员*/
	@Excel(name = "采购员", width = 15)
	@ApiModelProperty(value = "采购员")
    private String materialBuyerId;
	/**批次标志*/
	@Excel(name = "批次标志", width = 15)
	@ApiModelProperty(value = "批次标志")
    private String materialBatchFlag;
	/**自动采购标志*/
	@Excel(name = "自动采购标志", width = 15)
	@ApiModelProperty(value = "自动采购标志")
    private String materialBuyFlag;
	/**ABC标识*/
	@Excel(name = "ABC标识", width = 15)
	@ApiModelProperty(value = "ABC标识")
    private String materialAbcFlag;
	/**计划员*/
	@Excel(name = "计划员", width = 15)
	@ApiModelProperty(value = "计划员")
    private String materialPlannerId;
	/**批量*/
	@Excel(name = "批量", width = 15)
	@ApiModelProperty(value = "批量")
    private String batchTypeId;
	/**最小批量*/
	@Excel(name = "最小批量", width = 15)
	@ApiModelProperty(value = "最小批量")
    private java.math.BigDecimal materialMinimum;
	/**最大批量*/
	@Excel(name = "最大批量", width = 15)
	@ApiModelProperty(value = "最大批量")
    private java.math.BigDecimal materialMaximum;
	/**固定批量*/
	@Excel(name = "固定批量", width = 15)
	@ApiModelProperty(value = "固定批量")
    private java.math.BigDecimal materialFixed;
	/**安全库存*/
	@Excel(name = "安全库存", width = 15)
	@ApiModelProperty(value = "安全库存")
    private java.math.BigDecimal materialSafeStock;
	/**反冲标志*/
	@Excel(name = "反冲标志", width = 15)
	@ApiModelProperty(value = "反冲标志")
    private String materialBackFlag;
	/**自制生产（天）*/
	@Excel(name = "自制生产（天）", width = 15)
	@ApiModelProperty(value = "自制生产（天）")
    private java.math.BigDecimal productionDays;
	/**计划交货时间（天）*/
	@Excel(name = "计划交货时间（天）", width = 15)
	@ApiModelProperty(value = "计划交货时间（天）")
    private java.math.BigDecimal deliveryDays;
	/**收货处理时间（天）*/
	@Excel(name = "收货处理时间（天）", width = 15)
	@ApiModelProperty(value = "收货处理时间（天）")
    private java.math.BigDecimal receiveDays;
	/**单位换算定义ID*/
	@Excel(name = "单位换算定义ID", width = 15)
	@ApiModelProperty(value = "单位换算定义ID")
    private String unitConversionId;
	/**换算主单位*/
	@Excel(name = "换算主单位", width = 15)
	@ApiModelProperty(value = "换算主单位")
    private String conversionMainUnit;
	/**换算辅单位*/
	@Excel(name = "换算辅单位", width = 15)
	@ApiModelProperty(value = "换算辅单位")
    private String conversionSubUnit;
	/**换算率*/
	@Excel(name = "换算率", width = 15)
	@ApiModelProperty(value = "换算率")
    private java.math.BigDecimal conversionRate;
	/**默认采购单位*/
	@Excel(name = "默认采购单位", width = 15)
	@ApiModelProperty(value = "默认采购单位")
    private String buyUnitCode;
	/**默认销售单位*/
	@Excel(name = "默认销售单位", width = 15)
	@ApiModelProperty(value = "默认销售单位")
    private String saleUnitCode;
	/**默认库存单位*/
	@Excel(name = "默认库存单位", width = 15)
	@ApiModelProperty(value = "默认库存单位")
    private String stockUnitCode;
	/**默认发料单位*/
	@Excel(name = "默认发料单位", width = 15)
	@ApiModelProperty(value = "默认发料单位")
    private String issueUnitCode;
	/**创建人*/
	@ApiModelProperty(value = "创建人")
    private String createBy;
	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	@ApiModelProperty(value = "创建时间")
    private Date createTime;
	/**修改人*/
	@ApiModelProperty(value = "修改人")
    private String updateBy;
	/**修改时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	@ApiModelProperty(value = "修改时间")
    private Date updateTime;
	/**启用标志*/
	@Excel(name = "启用标志", width = 15)
	@ApiModelProperty(value = "启用标志")
    private String enableFlag;
	/**所属部门*/
	@ApiModelProperty(value = "所属部门")
    private String sysOrgCode;
	/**租户ID*/
	@Excel(name = "租户ID", width = 15)
	@ApiModelProperty(value = "租户ID")
    private Integer tenantId;
	/**生产厂家*/
	@Excel(name = "生产厂家", width = 15)
	@ApiModelProperty(value = "生产厂家")
	private String materialFactory;
	@ExcelCollection(name="工厂视图")
	@ApiModelProperty(value = "工厂视图")
	private List<MdmMaterialFactoryDetail> mdmMaterialFactoryDetailList;
	@ExcelCollection(name="财务视图")
	@ApiModelProperty(value = "财务视图")
	private List<MdmMaterialFinanceDetail> mdmMaterialFinanceDetailList;
	@ExcelCollection(name="计量单位")
	@ApiModelProperty(value = "计量单位")
	private List<MdmMaterialUnitDetail> mdmMaterialUnitDetailList;

}
